home *** CD-ROM | disk | FTP | other *** search
- output dh1:ConvGrey.o
-
- IncDir "dh1:Assembler/"
- Include "AMOS/|AMOSPro_Includes.s"
-
- cnvgrey movem.l d0-d7/a0-a6,-(sp)
- move.l (a3)+,d6 ;Bytes
- subq.l #1,d6
-
- move.l (a3)+,a5 ;Targetscreen
- move.l a3,-(sp)
- move.l (a5)+,a0
- move.l (a5)+,a1
- move.l (a5)+,a2
- move.l (a5)+,a3
- lea .tempp+4*4(pc),a5
- movem.l a0-a3,-(a5)
- movem.l (sp)+,a3
- move.l (a3)+,a4 ;Startscreen
- moveq.l #31,d7
- lea EcPal-4(a4),a0
- lea .grey(pc),a1
- .palmak moveq.l #0,d0
- move.w (a0)+,d0
- move.w d0,d1
- move.w d0,d2
- and.w #$F00,d0
- and.w #$0F0,d1
- and.w #$00F,d2
- lsr.w #8,d0
- lsr.w #4,d1
- add.w d2,d0
- add.w d1,d0
- cmp.w #47,d0
- beq.s .noadd
- addq.w #1,d0
- .noadd divu #3,d0
- move.b d0,(a1)+
- dbra d7,.palmak
- move.l (a4)+,a0
- move.l (a4)+,a1
- move.l (a4)+,a2
- move.l (a4)+,a3
- move.l (a4)+,a4
- .mloop lea .chkbuf+8(pc),a6
- move.b (a0)+,d4
- move.b (a1)+,d3
- move.b (a2)+,d2
- move.b (a3)+,d1
- move.b (a4)+,d0
- movem.l a0-a4,-(sp)
- REPT 8
- moveq.l #0,d5
- lsr.w #1,d0
- addx.w d5,d5
- lsr.w #1,d1
- addx.w d5,d5
- lsr.w #1,d2
- addx.w d5,d5
- lsr.w #1,d3
- addx.w d5,d5
- lsr.w #1,d4
- addx.w d5,d5
- move.b d5,-(a6)
- ENDR
- lea .chkbuf(pc),a0
- lea .newbuf(pc),a1
- lea .grey(pc),a2
- moveq.l #0,d0
- moveq.l #0,d1
- REPT 4
- move.b (a0)+,d0
- move.b (a2,d0.w),(a1)+
- move.b (a0)+,d1
- move.b (a2,d1.w),(a1)+
- ENDR
-
- lea .newbuf(pc),a6
- REPT 8
- move.b (a6)+,d5
- lsl.w #4,d5
- add.b d5,d5
- addx.w d0,d0
- add.b d5,d5
- addx.w d1,d1
- add.b d5,d5
- addx.w d2,d2
- add.b d5,d5
- addx.w d3,d3
- ENDR
- movem.l (a5)+,a0-a3
- move.b d3,(a0)+
- move.b d2,(a1)+
- move.b d1,(a2)+
- move.b d0,(a3)+
- movem.l a0-a3,-(a5)
- movem.l (sp)+,a0-a4
- dbra d6,.mloop
- movem.l (sp)+,d0-d7/a0-a6
- lea 12(a3),a3
- rts
- .chkbuf ds.b 8
- .newbuf ds.b 8
- .grey ds.b 32
- .tempp ds.l 4
-